﻿Public Class ctrBairro
    Inherits ctrPadrao

#Region "Declaração de variáveis"
    Private objBairro As New Persistencia.perBairro
    Private objCliente As New Controle.ctrCliente
    Private iIdBairro As Int32
    Private iIdCidade As Int32
#End Region

#Region "Propriedades"

    Public Property IDBairro() As Int32
        Get
            Return Me.iIdBairro
        End Get
        Set(ByVal value As Int32)
            Me.iIdBairro = value
        End Set
    End Property
    Public WriteOnly Property IDCidade() As Int32
        Set(ByVal value As Int32)
            Me.iIdCidade = value
        End Set
    End Property
    Public ReadOnly Property sqlConsulta() As String
        Get
            Return Me.objBairro.sqlConsulta(Me.iIdCidade)
        End Get
    End Property

#End Region

#Region "Métodos públicos"

    Public Function salvar(ByVal iIdBairro As Int32, _
                           ByVal iIdCidade As Int32, _
                           ByVal sBairro As String) As Boolean

        Dim bResultado As Boolean = False

        If iIdBairro > 0 Then
            Me.alterarBairro(iIdBairro, _
                             iIdCidade, _
                             sBairro)
            Me.IDBairro = iIdBairro
            bResultado = True
        Else
            Me.IDBairro = Me.inserirBairro(sBairro, _
                                           iIdCidade)

            bResultado = True
        End If

        Return bResultado

    End Function

    Public Function excluir(ByVal iIdBairro As Int32) As Boolean
        Dim bResultado As Boolean = True

        If bResultado Then
            Me.excluirBairro(iIdBairro)
        End If

        Return bResultado

    End Function

    Private Sub excluirBairro(ByVal iIdBairro As Int32)

        Try
            Me.objBairro.excluirBairro(iIdBairro)
        Catch ex As Exception
            Throw New Exception("Exceção no método 'excluirBairro'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Sub

    Public Function selecionarBairro(ByVal iIdBairro As Int32) As DataRow
        Try
            Return Me.objBairro.selecionarBairro(iIdBairro)
        Catch ex As Exception
            Throw New Exception("Exceção no método 'selecionarBairro'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try
    End Function
    Public Function retornarCampoBairro(ByVal sCampo As String, ByVal iIDBairro As Int32) As DataRow

        Try
            Dim dtDados As New DataTable
            Dim vRetorno As DataRow

            dtDados = Me.objBairro.selecionarCampoBairro(sCampo, iIDBairro)

            If Not dtDados Is Nothing Then
                vRetorno = dtDados.Rows(0)
            Else
                vRetorno = Nothing
            End If

            Return vRetorno

        Catch ex As Exception

            Throw New Exception("Exceção no método 'retornarCampoBairro'. " & Environment.NewLine & Environment.NewLine & ex.Message)

        End Try

    End Function

    Public Function verificarCidadeBairro(ByVal iIdCidade As Int32) As Boolean
        Try
            Dim dtDados As New DataTable
            Dim drDados As DataRow
            Dim bRetorno As Boolean

            dtDados = Me.objBairro.verificarBairroCidade(iIdCidade)

            If Not dtDados Is Nothing Then
                For Each drDados In dtDados.Rows
                    If drDados.Item("IDCidade") <> 0 Then
                        bRetorno = True
                    Else
                        bRetorno = False
                    End If
                Next
            End If

            Return bRetorno
        Catch ex As Exception
            Throw New Exception("Exceção no método 'verificarCidadeBairro'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try
    End Function
#End Region

#Region "Métodos privados"

    Private Sub alterarBairro(ByVal iIdBairro As Int32, _
                              ByVal iIdCidade As Int32, _
                              ByVal sBairro As String)
        Try
            Me.objBairro.alterarBairro(iIdBairro, _
                                       iIdCidade, _
                                       sBairro)
        Catch ex As Exception
            Throw New Exception("Exceção no método 'alterarBairro'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Sub

    Private Function inserirBairro(ByVal sBairro As String, _
                                   ByVal iIdCidade As Int32)
        Dim iIdBairro As Int32

        Try
            iIdBairro = Me.objBairro.inserirBairro(sBairro, _
                                                   iIdCidade)
            Return iIdBairro

        Catch ex As Exception
            Throw New Exception("Exceção no método 'inserirBairro'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Function

#End Region
End Class
